<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AbstractLeastSquaresOptimizer (Commons Math 3.2 API)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="AbstractLeastSquaresOptimizer (Commons Math 3.2 API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractLeastSquaresOptimizer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/GaussNewtonOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../index.html?org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AbstractLeastSquaresOptimizer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.commons.math3.optim.nonlinear.vector.jacobian</FONT>
<BR>
Class AbstractLeastSquaresOptimizer</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">org.apache.commons.math3.optim.BaseOptimizer</A>&lt;PAIR&gt;
      <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">org.apache.commons.math3.optim.BaseMultivariateOptimizer</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;
          <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer</A>
              <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer</A>
                  <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.commons.math3.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/GaussNewtonOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian">GaussNewtonOptimizer</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian">LevenbergMarquardtOptimizer</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>AbstractLeastSquaresOptimizer</B><DT>extends <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">JacobianMultivariateVectorOptimizer</A></DL>
</PRE>

<P>
Base class for implementing least-squares optimizers.
 It provides methods for error estimation.
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>3.1</DD>
<DT><B>Version:</B></DT>
  <DD>$Id: AbstractLeastSquaresOptimizer.java 1443444 2013-02-07 12:41:36Z erans $</DD>
</DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.commons.math3.optim.<A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#evaluations">evaluations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#iterations">iterations</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#AbstractLeastSquaresOptimizer(org.apache.commons.math3.optim.ConvergenceChecker)">AbstractLeastSquaresOptimizer</A></B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim">ConvergenceChecker</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;&nbsp;checker)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeCost(double[])">computeCost</A></B>(double[]&nbsp;residuals)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes the cost.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double[][]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeCovariances(double[], double)">computeCovariances</A></B>(double[]&nbsp;params,
                   double&nbsp;threshold)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the covariance matrix of the optimized parameters.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;double[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeResiduals(double[])">computeResiduals</A></B>(double[]&nbsp;objectiveValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes the residuals.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeSigma(double[], double)">computeSigma</A></B>(double[]&nbsp;params,
             double&nbsp;covarianceSingularityThreshold)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes an estimate of the standard deviation of the parameters.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/linear/RealMatrix.html" title="interface in org.apache.commons.math3.linear">RealMatrix</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeWeightedJacobian(double[])">computeWeightedJacobian</A></B>(double[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes the weighted Jacobian matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#getChiSquare()">getChiSquare</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a Chi-Square-like value assuming the N residuals follow N
 distinct normal distributions centered on 0 and whose variances are
 the reciprocal of the weights.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#getRMS()">getRMS</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the root-mean-square (RMS) value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/linear/RealMatrix.html" title="interface in org.apache.commons.math3.linear">RealMatrix</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#getWeightSquareRoot()">getWeightSquareRoot</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the square-root of the weight matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)">optimize</A></B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/OptimizationData.html" title="interface in org.apache.commons.math3.optim">OptimizationData</A>...&nbsp;optData)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores data and performs the optimization.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)">parseOptimizationData</A></B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/OptimizationData.html" title="interface in org.apache.commons.math3.optim">OptimizationData</A>...&nbsp;optData)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scans the list of (required and optional) optimization data that
 characterize the problem.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#setCost(double)">setCost</A></B>(double&nbsp;cost)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the cost.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">JacobianMultivariateVectorOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html#computeJacobian(double[])">computeJacobian</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">MultivariateVectorOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#computeObjectiveValue(double[])">computeObjectiveValue</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#getTarget()">getTarget</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#getTargetSize()">getTargetSize</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#getWeight()">getWeight</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.BaseMultivariateOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.<A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getLowerBound()">getLowerBound</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getStartPoint()">getStartPoint</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getUpperBound()">getUpperBound</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.<A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#doOptimize()">doOptimize</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getConvergenceChecker()">getConvergenceChecker</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getEvaluations()">getEvaluations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getIterations()">getIterations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxEvaluations()">getMaxEvaluations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxIterations()">getMaxIterations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#incrementEvaluationCount()">incrementEvaluationCount</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#incrementIterationCount()">incrementIterationCount</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="AbstractLeastSquaresOptimizer(org.apache.commons.math3.optim.ConvergenceChecker)"><!-- --></A><H3>
AbstractLeastSquaresOptimizer</H3>
<PRE>
protected <B>AbstractLeastSquaresOptimizer</B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim">ConvergenceChecker</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;&nbsp;checker)</PRE>
<DL>
<DL>
<DT><B>Parameters:</B><DD><CODE>checker</CODE> - Convergence checker.</DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="computeWeightedJacobian(double[])"><!-- --></A><H3>
computeWeightedJacobian</H3>
<PRE>
protected <A HREF="../../../../../../../../org/apache/commons/math3/linear/RealMatrix.html" title="interface in org.apache.commons.math3.linear">RealMatrix</A> <B>computeWeightedJacobian</B>(double[]&nbsp;params)</PRE>
<DL>
<DD>Computes the weighted Jacobian matrix.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - Model parameters at which to compute the Jacobian.
<DT><B>Returns:</B><DD>the weighted Jacobian: W<sup>1/2</sup> J.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</A></CODE> - if the Jacobian dimension does not
 match problem dimension.</DL>
</DD>
</DL>
<HR>

<A NAME="computeCost(double[])"><!-- --></A><H3>
computeCost</H3>
<PRE>
protected double <B>computeCost</B>(double[]&nbsp;residuals)</PRE>
<DL>
<DD>Computes the cost.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>residuals</CODE> - Residuals.
<DT><B>Returns:</B><DD>the cost.<DT><B>See Also:</B><DD><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeResiduals(double[])"><CODE>computeResiduals(double[])</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRMS()"><!-- --></A><H3>
getRMS</H3>
<PRE>
public double <B>getRMS</B>()</PRE>
<DL>
<DD>Gets the root-mean-square (RMS) value.

 The RMS the root of the arithmetic mean of the square of all weighted
 residuals.
 This is related to the criterion that is minimized by the optimizer
 as follows: If <em>c</em> if the criterion, and <em>n</em> is the
 number of measurements, then the RMS is <em>sqrt (c/n)</em>.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the RMS value.</DL>
</DD>
</DL>
<HR>

<A NAME="getChiSquare()"><!-- --></A><H3>
getChiSquare</H3>
<PRE>
public double <B>getChiSquare</B>()</PRE>
<DL>
<DD>Get a Chi-Square-like value assuming the N residuals follow N
 distinct normal distributions centered on 0 and whose variances are
 the reciprocal of the weights.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>chi-square value</DL>
</DD>
</DL>
<HR>

<A NAME="getWeightSquareRoot()"><!-- --></A><H3>
getWeightSquareRoot</H3>
<PRE>
public <A HREF="../../../../../../../../org/apache/commons/math3/linear/RealMatrix.html" title="interface in org.apache.commons.math3.linear">RealMatrix</A> <B>getWeightSquareRoot</B>()</PRE>
<DL>
<DD>Gets the square-root of the weight matrix.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the square-root of the weight matrix.</DL>
</DD>
</DL>
<HR>

<A NAME="setCost(double)"><!-- --></A><H3>
setCost</H3>
<PRE>
protected void <B>setCost</B>(double&nbsp;cost)</PRE>
<DL>
<DD>Sets the cost.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cost</CODE> - Cost value.</DL>
</DD>
</DL>
<HR>

<A NAME="computeCovariances(double[], double)"><!-- --></A><H3>
computeCovariances</H3>
<PRE>
public double[][] <B>computeCovariances</B>(double[]&nbsp;params,
                                     double&nbsp;threshold)</PRE>
<DL>
<DD>Get the covariance matrix of the optimized parameters.
 <br/>
 Note that this operation involves the inversion of the
 <code>J<sup>T</sup>J</code> matrix, where <code>J</code> is the
 Jacobian matrix.
 The <code>threshold</code> parameter is a way for the caller to specify
 that the result of this computation should be considered meaningless,
 and thus trigger an exception.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - Model parameters.<DD><CODE>threshold</CODE> - Singularity threshold.
<DT><B>Returns:</B><DD>the covariance matrix.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/linear/SingularMatrixException.html" title="class in org.apache.commons.math3.linear">SingularMatrixException</A></CODE> - if the covariance matrix cannot be computed (singular problem).</DL>
</DD>
</DL>
<HR>

<A NAME="computeSigma(double[], double)"><!-- --></A><H3>
computeSigma</H3>
<PRE>
public double[] <B>computeSigma</B>(double[]&nbsp;params,
                             double&nbsp;covarianceSingularityThreshold)</PRE>
<DL>
<DD>Computes an estimate of the standard deviation of the parameters. The
 returned values are the square root of the diagonal coefficients of the
 covariance matrix, <code>sd(a[i]) ~= sqrt(C[i][i])</code>, where <code>a[i]</code>
 is the optimized value of the <code>i</code>-th parameter, and <code>C</code> is
 the covariance matrix.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - Model parameters.<DD><CODE>covarianceSingularityThreshold</CODE> - Singularity threshold (see
 <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeCovariances(double[], double)"><CODE>computeCovariances</CODE></A>).
<DT><B>Returns:</B><DD>an estimate of the standard deviation of the optimized parameters
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/linear/SingularMatrixException.html" title="class in org.apache.commons.math3.linear">SingularMatrixException</A></CODE> - if the covariance matrix cannot be computed.</DL>
</DD>
</DL>
<HR>

<A NAME="optimize(org.apache.commons.math3.optim.OptimizationData...)"><!-- --></A><H3>
optimize</H3>
<PRE>
public <A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A> <B>optimize</B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/OptimizationData.html" title="interface in org.apache.commons.math3.optim">OptimizationData</A>...&nbsp;optData)
                              throws <A HREF="../../../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</A></PRE>
<DL>
<DD>Stores data and performs the optimization.
 <br/>
 The list of parameters is open-ended so that sub-classes can extend it
 with arguments specific to their concrete implementations.
 <br/>
 When the method is called multiple times, instance data is overwritten
 only when actually present in the list of arguments: when not specified,
 data set in a previous call is retained (and thus is optional in
 subsequent calls).
 <br/>
 Important note: Subclasses <em>must</em> override
 <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)"><CODE>BaseOptimizer.parseOptimizationData(OptimizationData[])</CODE></A> if they need to register
 their own options; but then, they <em>must</em> also call
 <code>super.parseOptimizationData(optData)</code> within that method.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)">optimize</A></CODE> in class <CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">JacobianMultivariateVectorOptimizer</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>optData</CODE> - Optimization data. In addition to those documented in
 <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)"><CODE>JacobianMultivariateVectorOptimizer</CODE></A>, this method will register the following data:
 <ul>
  <li><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/Weight.html" title="class in org.apache.commons.math3.optim.nonlinear.vector"><CODE>Weight</CODE></A></li>
 </ul>
<DT><B>Returns:</B><DD>a point/value pair that satifies the convergence criteria.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</A></CODE> - if the maximal number of
 evaluations is exceeded.
<DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</A></CODE> - if the initial guess, target, and weight
 arguments have inconsistent dimensions.</DL>
</DD>
</DL>
<HR>

<A NAME="computeResiduals(double[])"><!-- --></A><H3>
computeResiduals</H3>
<PRE>
protected double[] <B>computeResiduals</B>(double[]&nbsp;objectiveValue)</PRE>
<DL>
<DD>Computes the residuals.
 The residual is the difference between the observed (target)
 values and the model (objective function) value.
 There is one residual for each element of the vector-valued
 function.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>objectiveValue</CODE> - Value of the the objective function. This is
 the value returned from a call to
 <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#computeObjectiveValue(double[])"><CODE>computeObjectiveValue</CODE></A>
 (whose array argument contains the model parameters).
<DT><B>Returns:</B><DD>the residuals.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</A></CODE> - if <code>params</code> has a wrong
 length.</DL>
</DD>
</DL>
<HR>

<A NAME="parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)"><!-- --></A><H3>
parseOptimizationData</H3>
<PRE>
protected void <B>parseOptimizationData</B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/OptimizationData.html" title="interface in org.apache.commons.math3.optim">OptimizationData</A>...&nbsp;optData)</PRE>
<DL>
<DD>Scans the list of (required and optional) optimization data that
 characterize the problem.
 If the weight matrix is specified, the <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#weightMatrixSqrt"><CODE>weightMatrixSqrt</CODE></A>
 field is recomputed.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)">parseOptimizationData</A></CODE> in class <CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">JacobianMultivariateVectorOptimizer</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>optData</CODE> - Optimization data. The following data will be looked for:
 <ul>
  <li><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/Weight.html" title="class in org.apache.commons.math3.optim.nonlinear.vector"><CODE>Weight</CODE></A></li>
 </ul></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractLeastSquaresOptimizer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/GaussNewtonOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../index.html?org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AbstractLeastSquaresOptimizer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2003-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
